<?php
namespace app\daohang\loglic;

//表单字段公用类

class Form
{
    // 错误信息
    protected $error = '';
    
    /**
     * 获取错误信息
     * @return mixed
     */
    public function getError()
    {
        return $this->error;
    }
    
    /**
    * 表单字段通用属性处理
    * @version 1.0.0 首次引入
    * @param array $data 可选;初始数据;默认：空
    * @return array 表单字段数组列表（DcBuildForm）
    */
    public function items($data=[])
    {
        //获取表单字段列表
        $fields = $this->fields($data);
        //增加字段的相同属性值
        foreach($fields as $key=>$value){
            if(!isset($fields[$key]['class_left'])){
                $fields[$key]['class_left'] = 'col-12';
            }
            if(!isset($fields[$key]['class_right'])){
                $fields[$key]['class_right'] = 'col-12';
            }
            if(!isset($fields[$key]['class_tips'])){
                $fields[$key]['class_tips']  = '';
            }
        }
        //分类筛选
        if($data['action'] == 'index'){
            if($fields['category_id']){
                $fields['category_id']['type']        = 'select';
                $fields['category_id']['data-filter'] = true;
                $fields['category_id']['option'][0]   = '---';
            }
        }
        //表单字段（格式化）
        return DcFormItems($fields);
    }
    
    /**
    * 表格选项通用属性处理
    * @version 1.0.0 首次引入
    * @param array $data 可选;初始数据;默认：空
    * @return array 表格列字段属性（DcBuildTable）
    */
    public function columns($data=[])
    {
        //获取表格字段列表
        $fields = $this->fields($data);
        //排序格式化
        foreach($fields as $key=>$value){
            $fields[$key]['order'] = intval($value['order']);
        }
        //表格字段（格式化）
        $columns = DcTableColumns($fields);
        //表格事件定义
        $columns['operate']['data-events'] = 'daicuo.admin.daohang.events';
        //return
        return $columns;
    }
    
    //定义表单、表格字段列表
    protected function fields($data=[])
    {
        return [];
    }
}